<?php

namespace App\Http\Middleware;

use App, Closure, Session, Auth, Config;

class XmApi {
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
    */
    public function handle($request, Closure $next)
    {
        
        // 接收app发送过来的token，并读取相应的用户信息
        //$user_id    = session('user_id');
        $user_token = $request->header('token');

        // 如果用户编号不存在且token存在，读取对应token的用户，并将用户信息写入session
        if ( $user_token ){

            $user_info = App\Models\User::where('login_token', $user_token)->first();
            
            // 如果token和用户对不上，则用户可能在其他地方登陆，token已经改变了
            if ( empty($user_info->id) ){

                return response()->json([
                    'code'    => 301,
                    'message' => '请重新登录',
                    'data'    => null
                ]);
            }

            session(['user_id' => $user_info->id]);
        }

        // 无token的时候，强制用户编号为0
        if ( empty($user_token) ){

            session(['user_id' => 0]);
            
        }
        
        return $next($request);
    }

}
